import java.util.Scanner;

public class E04ArrayAdd02 {
    /*要求实现动态的给数组添加元素的效果，实现对数组的扩容
     1). 原始数组使用静态分配 int[] arr = {1,2,3}
     2). 增加的元素，直接放在数组的最后 arr = {1,2,3,4}  arrNew = {1,2,3,4}
     3).用户可通过输入 y/n 来决定是否继续添加，添加成功，是否继续？
     * */
    /*思路分析
    1. 定义初始数组 int[] arr = {1,2,3}
    2. 定义一个新的数组 int[] arrNew = new int[arr.length+1]
    3.遍历 arr 数组，依次arr的元素拷贝到 arrNew 数组
    4. 将 4 赋值给 arrNew 的最后一个元素 arrNew[arr.length+1]
    5. 让 arr 指向 arrNew arr = arrNew; 那么原来的 arr 数组就被销毁了
    6. 创建一个 Scanner 可以接收用户的输入
    7. 因为用户什么时候退出不确定， 我们使用 do-while + break 来控制
    * */
    public static void main(String[] args) {
        Scanner myScanner = new Scanner(System.in);
        do{
            int[] arr = {1,2,3};
            int[] arrNew = new int[arr.length+1];
            for (int i = 0; i < arr.length; i++) {
                arrNew[i] = arr[i];
            }
            System.out.println("请输入你要添加到元素：");
            int addNum = myScanner.nextInt();
            arrNew[arr.length+1] = addNum;
            arr = arrNew;
            System.out.println("=======扩容后元素情况========");
            for (int i = 0; i < arr.length; i++) {
                System.out.println(arr[i]);
            }
            //问用户是否继续
            System.out.println("是否继续添加？ 请输入 y/n ");
            char key = myScanner.next().charAt(0);
            if (key =='n'){//如果输入 n 就退出
                break;
            }
        }while(true);
        System.out.println("你已退出了添加");
    }
    /*习题练习
    有一个数组{1, 2, 3, 4, 5} ，可以将该数组进行缩减，提示用户是否继续缩减，每次缩减最后那个元素，提示，不能再缩减

    * */
}